index.html.vue 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236
  1. <template>
  2. <div>
  3. <HomePageHead></HomePageHead>
  4. <HomePageNavigation></HomePageNavigation>
  5. <HomeSecondaryHeading :titleData="pageData" :pinyinid="routeId"></HomeSecondaryHeading>
  6. <main class="index_main">
  7. <section class="index_1 clearfix">
  8. <div class="index_1_left">
  9. <div class="roll_1_box">
  10. <HomeSmallSwiper1 :data="pageData[0].data"></HomeSmallSwiper1>
  11. </div>
  12. </div>
  13. <div class="index_1_right">
  14. <div class="index_1_color_box">
  15. <h3 class="index_1_head_h3 clearfix phone_head_5">
  16. <NuxtLink class="index_1_head_a" :href="getLinkPath(pageData[0])" v-if="pageData[0]"
  17. :title="pageData[0].alias">
  18. {{ pageData[0].alias }}
  19. </NuxtLink>
  20. </h3>
  21. <div class="phone_channel_img_ul_4 pc_none">
  22. <div class="phone_channel_img_li_2" v-for="item in pageData[0].data.slice(0, 1)" :key="item.id">
  23. <NuxtLink class="phone_channel_img_li_a_2" :href="getLinkPathDetail1(item)"
  24. :title="item.title" :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
  25. <img class="phone_channel_img_li_foto_2" :src="item.imgurl"
  26. alt="item.title">
  27. <span class="phone_channel_img_li_text_2">{{ item.title }}</span>
  28. </NuxtLink>
  29. </div>
  30. </div>
  31. <div class="index_1_ul" v-if="pageData[0].data2">
  32. <NuxtLink class="index_1_ul_a dot1" :href="getLinkPathDetail(item)" :title="item.title"
  33. v-for="item in pageData[0].data2" :key="item.id"
  34. :target="item.islink == 1 ? '_blank' : '_self'">
  35. {{ item.title }}
  36. </NuxtLink>
  37. </div>
  38. </div>
  39. </div>
  40. </section>
  41. <HomeAdvertisingClass :adData1="adImg1" :adData2="adImg2"></HomeAdvertisingClass>
  42. <section class="index_2 clearfix">
  43. <div class="index_2_left" v-if="pageData[1]">
  44. <h3 class="index_2_left_h3 clearfix phone_head_1">
  45. <NuxtLink class="index_2_left_h3_a index_2_left_h3_a_only" :href="getLinkPath(pageData[1])"
  46. v-if="pageData[1]" :title="pageData[1].alias">
  47. {{ pageData[1].alias }}
  48. </NuxtLink>
  49. </h3>
  50. <div class="index_2_left_img_out">
  51. <div class="index_2_big_img_ul clearfix">
  52. <div class="index_2_big_img_li phone_img_li_1">
  53. <NuxtLink class="index_2_big_img_li_a" :href="getLinkPathDetail(item)"
  54. :title="item.title" v-for="item in pageData[1].data" :key="item.id"
  55. :target="item.islink == 1 ? '_blank' : '_self'">
  56. <img :src="item.imgurl" title="item.title" alt="item.title">
  57. <div class="index_2_img_li_dot1 dot1">{{ item.title }}</div>
  58. </NuxtLink>
  59. </div>
  60. </div>
  61. <div class="index_2_img_ul clearfix">
  62. <div class="index_2_img_li" v-for="item in pageData[1].data2" :key="item.id">
  63. <NuxtLink class="index_2_img_li_a" :href="getLinkPathDetail(item)" :title="item.title"
  64. :target="item.islink == 1 ? '_blank' : '_self'">
  65. <img :src="item.imgurl" title="item.title" alt="item.title">
  66. <div class="index_2_img_li_dot1 dot1">{{ item.title }}</div>
  67. </NuxtLink>
  68. </div>
  69. </div>
  70. </div>
  71. <div class="index_2_left_ul_box">
  72. <div class="index_2_left_ul index_2_left_ul_group_6">
  73. <div class="index_2_left_ul_li dot1" v-for="item in pageData[1].data3" :key="item.id">
  74. <NuxtLink class="index_2_left_ul_li_a_name" :href="getLinkPath1(item)"
  75. :title="item.title" :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
  76. {{ item.alias }}
  77. </NuxtLink>
  78. <NuxtLink class="index_2_left_ul_li_a_text" :href="getLinkPathDetail1(item)"
  79. :title="item.title" :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
  80. {{ item.title }}
  81. </NuxtLink>
  82. </div>
  83. </div>
  84. </div>
  85. </div>
  86. <div class="index_2_right" v-if="pageData[2]">
  87. <h3 class="index_2_right_head phone_head_2">
  88. <NuxtLink class="index_2_right_head_a" :href="getLinkPath(pageData[2])" v-if="pageData[2]"
  89. :title="pageData[2].alias">
  90. {{ pageData[2].alias }}
  91. </NuxtLink>
  92. </h3>
  93. <div class="phone_channel_img_ul pc_none">
  94. <div class="phone_channel_img_li" v-for="item in pageData[2].data.slice(0, 1)" :key="item.id">
  95. <NuxtLink class="phone_channel_img_li_a" :href="getLinkPathDetail(item)" :title="item.title"
  96. :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
  97. <img class="phone_channel_img_li_foto" :src="item.imgurl" title="" alt=""></img>
  98. <span class="phone_channel_img_li_text">{{ item.title }}</span>
  99. </NuxtLink>
  100. </div>
  101. </div>
  102. <div class="phone_channel_ul pc_none">
  103. <NuxtLink v-for="item in pageData[2].data.slice(1, 2)" class="phone_channel_li_a"
  104. :href="getLinkPathDetail(item)" :title="item.title" :key="item.id"
  105. :target="item.islink == 1 ? '_blank' : '_self'">
  106. {{ item.title }}
  107. </NuxtLink>
  108. <NuxtLink v-for="item in pageData[3].data.slice(0, 4)" class="phone_channel_li_a"
  109. :href="getLinkPathDetail(item)" :title="item.title" :key="item.id"
  110. :target="item.islink == 1 ? '_blank' : '_self'">
  111. {{ item.title }}
  112. </NuxtLink>
  113. </div>
  114. <div class="index_2_right_img_ul phone_none">
  115. <div class="index_2_right_img_li clearfix" v-for="item in pageData[2].data" :key="item.id">
  116. <NuxtLink class="index_2_right_img_li_a" :href="getLinkPathDetail(item)" :title="item.title"
  117. :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
  118. <div class="index_2_right_img_li_a_img_box">
  119. <img class="" :src="item.imgurl" title="" alt="">
  120. </div>
  121. <div class="index_2_right_img_li_dot3 dot3">
  122. {{ item.title }}
  123. </div>
  124. </NuxtLink>
  125. </div>
  126. </div>
  127. <div class="index_1_ul index_1_ul_2 phone_none">
  128. <NuxtLink class="index_1_ul_a dot1" :href="getLinkPathDetail(item)" :title="item.title"
  129. v-for="item in pageData[2].data3" :key="item.id"
  130. :target="item.islink == 1 ? '_blank' : '_self'">
  131. {{ item.title }}
  132. </NuxtLink>
  133. </div>
  134. <div class="index_2_right_img_ul phone_none">
  135. <div class="index_2_right_img_li clearfix" v-for="item in pageData[2].data2" :key="item.id">
  136. <NuxtLink class="index_2_right_img_li_a" :href="getLinkPathDetail(item)" :title="item.title"
  137. :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
  138. <div class="index_2_right_img_li_a_img_box">
  139. <img class="" :src="item.imgurl" title="" alt="">
  140. </div>
  141. <div class="index_2_right_img_li_dot3 dot3">
  142. {{ item.title }}
  143. </div>
  144. </NuxtLink>
  145. </div>
  146. </div>
  147. </div>
  148. </section>
  149. <section class="index_3 clearfix">
  150. <div class="index_2_left" v-if="pageData[4]">
  151. <h3 class="index_2_left_h3 clearfix phone_head_3">
  152. <NuxtLink :class="{ 'index_2_left_h3_a': true, 'index_2_left_h3_a_only': showTabs == 1 }"
  153. :href="getLinkPath(pageData[3])" v-if="pageData[3]" :title="pageData[3].alias"
  154. @mouseenter="qhtabs(1)">
  155. {{ pageData[3].alias }}
  156. </NuxtLink>
  157. <NuxtLink
  158. :class="{ 'index_2_left_h3_a phone_none': true, 'index_2_left_h3_a_only': showTabs == 2 }"
  159. :href="getLinkPath(pageData[4])" v-if="pageData[4]" :title="pageData[4].alias"
  160. @mouseenter="qhtabs(2)">
  161. {{ pageData[4].alias }}
  162. </NuxtLink>
  163. </h3>
  164. <div class="phone_channel_img_ul_2 pc_none">
  165. <div class="phone_channel_img_li_2" v-for="item in pageData[3].data2.slice(0, 1)" :key="item.id">
  166. <NuxtLink class="phone_channel_img_li_a_2" :href="getLinkPathDetail1(item)"
  167. :title="item.title" :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
  168. <img class="phone_channel_img_li_foto_2" :src="item.imgurl" title="item.title"
  169. alt="item.title">
  170. <span class="phone_channel_img_li_text_2">{{ item.title }}</span>
  171. </NuxtLink>
  172. </div>
  173. </div>
  174. <div v-if="showTabs == 1">
  175. <div class="index_2_left_img_out">
  176. <div class="index_2_left_ul index_2_left_ul_group_5 phone_img_ul_1">
  177. <div class="index_2_left_ul_li dot1" v-for="item in pageData[3].data" :key="item.id">
  178. <NuxtLink class="index_2_left_ul_li_a_name" :href="getLinkPath1(item)"
  179. :title="item.title" :key="item.id"
  180. :target="item.islink == 1 ? '_blank' : '_self'">
  181. {{ item.alias }}
  182. </NuxtLink>
  183. <NuxtLink class="index_2_left_ul_li_a_text" :href="getLinkPathDetail1(item)"
  184. :title="item.title" :key="item.id"
  185. :target="item.islink == 1 ? '_blank' : '_self'">
  186. {{ item.title }}
  187. </NuxtLink>
  188. </div>
  189. </div>
  190. </div>
  191. <div class="index_2_left_ul_box phone_none">
  192. <div class="index_3_img_ul">
  193. <div class="index_3_img_li clearfix" v-for="item in pageData[3].data2" :key="item.id">
  194. <NuxtLink class="index_3_img_li_a" :href="getLinkPathDetail1(item)"
  195. :title="item.title" :key="item.id"
  196. :target="item.islink == 1 ? '_blank' : '_self'">
  197. <div class="index_3_img_li_img_box">
  198. <img :src="item.imgurl" title="item.title" alt="item.title">
  199. </div>
  200. <div class="index_3_img_li_in">
  201. <div class="index_3_img_li_dot3 dot3">
  202. {{ item.title }}
  203. </div>
  204. <NuxtLink class="index_2_left_ul_li_a_name" :href="getLinkPath1(item)"
  205. :title="item.title" :key="item.id"
  206. :target="item.islink == 1 ? '_blank' : '_self'">
  207. <span class="index_3_img_li_tag">{{ item.alias }}</span>
  208. </NuxtLink>
  209. </div>
  210. </NuxtLink>
  211. </div>
  212. </div>
  213. </div>
  214. </div>
  215. <div v-if="showTabs == 2">
  216. <div class="index_2_left_img_out">
  217. <div class="index_2_left_ul index_2_left_ul_group_5">
  218. <div class="index_2_left_ul_li dot1" v-for="item in pageData[4].data" :key="item.id">
  219. <NuxtLink class="index_2_left_ul_li_a_name" :href="getLinkPath1(item)"
  220. :title="item.title" :key="item.id"
  221. :target="item.islink == 1 ? '_blank' : '_self'">
  222. {{ item.alias }}
  223. </NuxtLink>
  224. <NuxtLink class="index_2_left_ul_li_a_text" :href="getLinkPathDetail1(item)"
  225. :title="item.title" :key="item.id"
  226. :target="item.islink == 1 ? '_blank' : '_self'">
  227. {{ item.title }}
  228. </NuxtLink>
  229. </div>
  230. </div>
  231. </div>
  232. <div class="index_2_left_ul_box">
  233. <div class="index_3_img_ul">
  234. <div class="index_3_img_li clearfix" v-for="item in pageData[4].data2" :key="item.id">
  235. <NuxtLink class="index_3_img_li_a" :href="getLinkPathDetail1(item)"
  236. :title="item.title" :key="item.id"
  237. :target="item.islink == 1 ? '_blank' : '_self'">
  238. <div class="index_3_img_li_img_box">
  239. <img :src="item.imgurl" title="item.title" alt="item.title">
  240. </div>
  241. <div class="index_3_img_li_in">
  242. <div class="index_3_img_li_dot3 dot3">
  243. {{ item.title }}
  244. </div>
  245. <NuxtLink class="index_2_left_ul_li_a_name" :href="getLinkPath1(item)"
  246. :title="item.title" :key="item.id"
  247. :target="item.islink == 1 ? '_blank' : '_self'">
  248. <span class="index_3_img_li_tag">{{ item.alias }}</span>
  249. </NuxtLink>
  250. </div>
  251. </NuxtLink>
  252. </div>
  253. </div>
  254. </div>
  255. </div>
  256. <div class="phone_box_3 pc_none"> <!--phone 农业项目 -->
  257. <h3 class="index_2_left_h3 clearfix phone_head_4">
  258. <NuxtLink :class="{ 'index_2_left_h3_a': true, 'index_2_left_h3_a_only': showTabs == 2 }"
  259. :href="getLinkPath(pageData[4])" v-if="pageData[4]" :title="pageData[4].alias"
  260. @mouseenter="qhtabs(2)">
  261. {{ pageData[4].alias }}
  262. </NuxtLink>
  263. </h3>
  264. <div class=" pc_none">
  265. <div class="phone_channel_img_ul_3 ">
  266. <div class="phone_channel_img_li_3" v-for="item in pageData[4].data2.slice(0, 1)"
  267. :key="item.id">
  268. <NuxtLink class="phone_channel_img_li_a_3" :href="getLinkPathDetail1(item)"
  269. :title="item.title" :key="item.id"
  270. :target="item.islink == 1 ? '_blank' : '_self'">
  271. <img class="phone_channel_img_li_foto_3" :src="item.imgurl" title="item.title"
  272. alt="item.title">
  273. <span class="phone_channel_img_li_text_3">{{ item.title }}</span>
  274. </NuxtLink>
  275. </div>
  276. </div>
  277. <div class="phone_channel_ul_3 ">
  278. <NuxtLink v-for="item in pageData[4].data.slice(1, 6)" class="phone_channel_li_3_a"
  279. :href="getLinkPathDetail1(item)" :title="item.title" :key="item.id"
  280. :target="item.islink == 1 ? '_blank' : '_self'">
  281. {{ item.title }}
  282. </NuxtLink>
  283. </div>
  284. </div>
  285. </div>
  286. </div>
  287. <div class="index_2_right">
  288. <h3 class="index_2_right_head phone_head_5">
  289. <NuxtLink class="index_2_right_head_a" :href="getLinkPath(pageData[5])" v-if="pageData[5]"
  290. :title="pageData[5].alias">
  291. {{ pageData[5].alias }}
  292. </NuxtLink>
  293. </h3>
  294. <div class="index_3_num_ul phone_img_ul_2" v-if="pageData[5]">
  295. <NuxtLink class="index_1_ul_a dot1" :href="getLinkPathDetail(item)" :title="item.title"
  296. v-for="item in pageData[5].data" :key="item.id"
  297. :target="item.islink == 1 ? '_blank' : '_self'">
  298. {{ item.title }}
  299. </NuxtLink>
  300. </div>
  301. </div>
  302. </section>
  303. </main>
  304. <!-- 页脚部分 -->
  305. <HomeFoot1></HomeFoot1>
  306. </div>
  307. </template>
  308. <script setup>
  309. //0.加载页面依赖 start ---------------------------------------->
  310. import { ref, onMounted } from 'vue';
  311. import { ElMessage } from 'element-plus';
  312. //0.加载页面依赖 end ---------------------------------------->
  313. //1.获得路由id start ---------------------------------------->
  314. const targetSegment = getRoutePath(1);
  315. //1.1 获得当前的路由id
  316. let routeId;
  317. //通过导航路径反向查询导航id
  318. const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
  319. method: 'GET',
  320. query: {
  321. 'pinyin': targetSegment,
  322. },
  323. });
  324. if (getRouteId.code == 200) {
  325. routeId = getRouteId.data.category_id
  326. } else {
  327. console.log("获得路由id出错!", getRouteId.message)
  328. }
  329. //1.获得路由id end ---------------------------------------->
  330. //2.选项卡 start ---------------------------------------->
  331. let showTabs = ref(1)
  332. let qhtabs = function (number) {
  333. console.log(number)
  334. showTabs.value = number
  335. }
  336. //2.选项卡 end ---------------------------------------->
  337. //3.广告 start ---------------------------------------->
  338. let adImg1 = ref({})
  339. let adImg2 = ref({})
  340. onMounted(async () => {
  341. //从客户端获取行政职能部门 加快打开速度
  342. const { $webUrl, $CwebUrl } = useNuxtApp();
  343. //广告1
  344. let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmw_category_0001`
  345. const responseAd1 = await fetch(url, {
  346. headers: {
  347. 'Content-Type': 'application/json',
  348. 'Userurl': $CwebUrl,
  349. 'Origin': $CwebUrl
  350. }
  351. });
  352. const resultAd1 = await responseAd1.json();
  353. adImg1.value = resultAd1.data[0];
  354. //广告2
  355. let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmw_category_0002`
  356. const responseAd2 = await fetch(url2, {
  357. headers: {
  358. 'Content-Type': 'application/json',
  359. 'Userurl': $CwebUrl,
  360. 'Origin': $CwebUrl
  361. }
  362. });
  363. const resultAd2 = await responseAd2.json();
  364. adImg2.value = resultAd2.data[0];
  365. })
  366. //3.广告 end ---------------------------------------->
  367. //4.页面数据 start ---------------------------------------->
  368. const pageData = ref([
  369. //示例:
  370. // {
  371. // id: 1,
  372. // title: "", //该导航的标题
  373. // data: [], //数据1
  374. // data1: [], //数据2
  375. // data2: [], //数据3
  376. // data3: [], //数据4
  377. // data4: [], //数据5
  378. // category_id1: "", //子导航id1
  379. // category_id2: "",
  380. // category_id3: "",
  381. // category_id4: "",
  382. // title1: "", //子导航标题1
  383. // title2: "",
  384. // title3: "",
  385. // title4: "",
  386. // cid: "" //该导航的id
  387. // },
  388. ])
  389. //4.1 获取所有导航
  390. try {
  391. const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
  392. method: 'GET',
  393. query: {
  394. 'placeid': 1,
  395. 'pid': routeId,
  396. 'num': 16
  397. },
  398. });
  399. if (navigateData.code == 200) {
  400. // 遍历可用的导航池放到页面中
  401. for (let index in navigateData.data) {
  402. let data = {
  403. title: navigateData.data[index].name,
  404. cid: navigateData.data[index].category_id,
  405. children_count: navigateData.data[index].children_count,
  406. alias: navigateData.data[index].alias,
  407. aLIas_pinyin: targetSegment + "/" + navigateData.data[index].aLIas_pinyin,
  408. data: [],
  409. data1: [],
  410. data2: [],
  411. data3: [],
  412. data4: [],
  413. category_id1: "",
  414. category_id2: "",
  415. category_id3: "",
  416. category_id4: "",
  417. title1: "",
  418. title2: "",
  419. title3: "",
  420. title4: ""
  421. };
  422. if (navigateData.data[index].is_url == 1) {
  423. // 处理 URL 的逻辑
  424. } else {
  425. //每个页面最多8个模块
  426. pageData.value.push(data);
  427. }
  428. }
  429. //导航池加载完毕,开始申请模块数据
  430. let getJson = [
  431. // { "parent": routeId + ",0,0", "child": pageData.value[0].cid + ",5,7" },//模块1理论前沿
  432. // { "parent": routeId + ",0,0", "child": pageData.value[1].cid + ",3,11" },//模块2典型经验
  433. // { "parent": routeId + ",0,0", "child": pageData.value[2].cid + ",4,2" },//模块3农业天地
  434. // { "parent": routeId + ",0,0", "child": pageData.value[3].cid + ",3,10" },//模块4美丽乡村
  435. // { "parent": routeId + ",0,0", "child": pageData.value[4].cid + ",3,10" },//模块5农民之家
  436. // { "parent": routeId + ",0,0", "child": pageData.value[5].cid + ",0,7" },//模块6农业天地
  437. // { "parent": routeId + ",0,0", "child": pageData.value[6].cid + ",2,3" },//模块7农村建设
  438. // { "parent": routeId + ",0,0", "child": pageData.value[7].cid + ",4,0" },//模块8高端资讯
  439. ]
  440. for (let index in pageData.value) {
  441. // console.log("index", index)
  442. if (index == 0) {
  443. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[index].cid + ",5,7" })//模块1理论前沿
  444. } else if (index == 1) {
  445. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[index].cid + ",3,11" })//模块2典型经验
  446. } else if (index == 2) {
  447. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[index].cid + ",4,2" })//模块3农业天地
  448. } else if (index == 3) {
  449. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[index].cid + ",3,10" })//模块4美丽乡村
  450. } else if (index == 4) {
  451. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[index].cid + ",3,10" })//模块5农民之家
  452. } else if (index == 5) {
  453. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[index].cid + ",0,9" })//模块6农业天地
  454. } else if (index == 6) {
  455. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[index].cid + ",2,3" })//模块7农村建设
  456. } else if (index == 7) {
  457. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[index].cid + ",4,0" })//模块8高端资讯
  458. }
  459. }
  460. let jsonString = JSON.stringify(getJson);
  461. getPageAllData(jsonString);
  462. //频道页特殊数据
  463. let getJson1 = []
  464. for (let index in pageData.value) {
  465. // console.log("index", index)
  466. if (index == 1) {
  467. getJson1.push({ "parent": pageData.value[index].cid + ",0,11" })//模块2典型经验
  468. } else if (index == 3) {
  469. getJson1.push({ "parent": pageData.value[index].cid + ",3,10" })//模块4美丽乡村
  470. } else if (index == 4) {
  471. getJson1.push({ "parent": pageData.value[index].cid + ",3,10" })//模块5农民之家
  472. }
  473. }
  474. let jsonString1 = JSON.stringify(getJson1);
  475. if (jsonString1 != '[]') {
  476. getPageAllData1(jsonString1);
  477. }
  478. } else {
  479. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  480. // console.log("错误位置:分类页导航池")
  481. // console.log("后端错误反馈:", navigateData.message)
  482. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  483. }
  484. } catch (error) {
  485. // console.log("错误:导航池渲染执行接口出错!请检查频道页渲染的模块数据是否完整!")
  486. }
  487. async function getPageAllData(jsonString) {
  488. const mkdata = await requestDataPromise('/web/getWebsiteAllArticle', {
  489. method: 'GET',
  490. query: {
  491. 'id': jsonString
  492. },
  493. });
  494. console.log('模块数据:', mkdata);
  495. if (mkdata.code == 200) {
  496. //模块1
  497. pageData.value[0].data = mkdata.data[0].child.imgnum;
  498. pageData.value[0].data2 = mkdata.data[0].child.textnum;
  499. //模块2
  500. for (let index in mkdata.data[1].child.imgnum) {
  501. if (index == 0) {
  502. pageData.value[1].data.push(mkdata.data[1].child.imgnum[index]);
  503. } else {
  504. pageData.value[1].data2.push(mkdata.data[1].child.imgnum[index]);
  505. }
  506. }
  507. // pageData.value[1].data3 = mkdata.data[1].child.textnum;
  508. //模块3
  509. for (let index in mkdata.data[2].child.imgnum) {
  510. if (index <= 1) {
  511. pageData.value[2].data.push(mkdata.data[2].child.imgnum[index]);
  512. } else {
  513. pageData.value[2].data2.push(mkdata.data[2].child.imgnum[index]);
  514. }
  515. }
  516. pageData.value[2].data3 = mkdata.data[2].child.textnum;
  517. //模块4
  518. // pageData.value[3].data = mkdata.data[3].child.textnum;
  519. // pageData.value[3].data2 = mkdata.data[3].child.imgnum;
  520. // //模块5
  521. // pageData.value[4].data = mkdata.data[4].child.textnum;
  522. // pageData.value[4].data2 = mkdata.data[4].child.imgnum;
  523. //模块6
  524. pageData.value[5].data = mkdata.data[5].child.textnum;
  525. } else {
  526. ElMessage.error(mkdata.message)
  527. }
  528. }
  529. //频道页特殊数据
  530. async function getPageAllData1(jsonString1) {
  531. const mkdata = await requestDataPromise('/web/getWebsiteArticles', {
  532. method: 'GET',
  533. query: {
  534. 'id': jsonString1
  535. },
  536. });
  537. // console.log('模块数据111:', mkdata);
  538. if (mkdata.code == 200) {
  539. //模块2
  540. pageData.value[1].data3 = mkdata.data[0].textnum;
  541. //模块4
  542. pageData.value[3].data = mkdata.data[1].textnum;
  543. pageData.value[3].data2 = mkdata.data[1].imgnum;
  544. //模块5
  545. pageData.value[4].data = mkdata.data[2].textnum;
  546. pageData.value[4].data2 = mkdata.data[2].imgnum;
  547. } else {
  548. ElMessage.error(mkdata.message)
  549. }
  550. }
  551. //4.页面数据 end ---------------------------------------->
  552. //5.设置seo信息 start---------------------------------------->
  553. const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
  554. method: 'GET',
  555. query: {
  556. 'catid': routeId
  557. },
  558. });
  559. if (setData.code == 200) {
  560. let seoTitle = setData.data.seo_title;
  561. let seoDescription = setData.data.seo_description;
  562. let seoKeywords = setData.data.seo_keywords;
  563. let seoSuffix = setData.data.suffix;
  564. let seoName = setData.data.website_name;
  565. useSeoMeta({
  566. title: seoTitle + "_" + seoName + "_" + seoSuffix,
  567. meta: [
  568. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  569. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  570. { name: 'viewport', content: 'width=device-width,initial-scale=1,user-scalable=no', tagPriority: 10 }
  571. ]
  572. });
  573. } else {
  574. // console.log("设置频道页SEO出错!", setData.message)
  575. }
  576. //5.设置seo信息 end---------------------------------------->
  577. </script>
  578. <style lang="less" scoped>
  579. @import '@/assets/css/class.less';
  580. </style>
  581. <style lang="less" scoped>
  582. @media screen and (min-width:801px) {
  583. /*pc*/
  584. .pc_none {
  585. display: none;
  586. }
  587. }
  588. @media screen and (max-width:800px) {
  589. /*ipad_phone*/
  590. .index_main {
  591. width: 100%;
  592. }
  593. .index_1 {
  594. width: 92%;
  595. height: auto;
  596. margin: 0px auto;
  597. }
  598. .index_1_right {
  599. width: 100%;
  600. float: none;
  601. }
  602. .index_1_color_box {
  603. padding: 0;
  604. border: none;
  605. background: #fff;
  606. }
  607. .index_1_head_h3 {
  608. height: 50px;
  609. line-height: 50px;
  610. background: #fff;
  611. border-top: 1px solid #DD7D18;
  612. padding: 0;
  613. width: 100%;
  614. margin: 15px auto 0px;
  615. }
  616. .index_1_head_h3 .index_1_head_a {
  617. float: left;
  618. height: 50px;
  619. line-height: 50px;
  620. margin: 0;
  621. color: #dd7d18;
  622. font-size: 18px;
  623. border-top: 3px solid #DD7D18;
  624. font-weight: bold;
  625. box-sizing: border-box;
  626. }
  627. .index_1_ul_a {
  628. width: 100% !important;
  629. display: block;
  630. height: 40px !important;
  631. border-bottom: 1px solid #E6E6E6;
  632. margin: 0px !important;
  633. line-height: 40px;
  634. position: relative;
  635. text-indent: 18px;
  636. font-size: 16px;
  637. }
  638. .index_1_ul_a:nth-of-type(n+6) {
  639. display: none;
  640. }
  641. .index_1_ul_a::after {
  642. content: '';
  643. display: block;
  644. position: absolute;
  645. left: 0px;
  646. top: 18px;
  647. background: #E6E6E6;
  648. width: 6px;
  649. height: 6px;
  650. }
  651. .index_2 {
  652. height: auto;
  653. overflow: hidden;
  654. width: 92%;
  655. margin: 0px auto;
  656. }
  657. .index_2_left {
  658. width: 100%;
  659. float: none;
  660. overflow: hidden;
  661. }
  662. .index_2_left_img_out {
  663. width: 100%;
  664. float: none;
  665. overflow: hidden;
  666. }
  667. .index_2_left_h3 {
  668. height: 50px;
  669. line-height: 50px;
  670. background: #fff;
  671. border-top: 1px solid #DD7D18;
  672. padding: 0;
  673. width: 100%;
  674. }
  675. .index_2_left_h3_a {
  676. float: left;
  677. height: 50px;
  678. line-height: 50px;
  679. margin: 0;
  680. color: #dd7d18;
  681. font-size: 18px;
  682. border-top: 3px solid #DD7D18;
  683. font-weight: bold;
  684. box-sizing: border-box;
  685. padding: 0 !important;
  686. }
  687. .index_2_big_img_li {
  688. width: 100%;
  689. float: none;
  690. height: 55vw;
  691. border-radius: 10px;
  692. position: relative;
  693. overflow: hidden;
  694. }
  695. .index_2_big_img_li a {
  696. display: block;
  697. width: 100%;
  698. height: 100%;
  699. }
  700. .index_2_big_img_li img {
  701. display: block;
  702. width: 100%;
  703. height: 100%;
  704. }
  705. .index_2_img_li_dot1 {
  706. position: absolute;
  707. width: 100%;
  708. height: 66px;
  709. line-height: 90px;
  710. color: #fff;
  711. font-size: 16px;
  712. left: 0px;
  713. bottom: 0px;
  714. padding: 0px 5%;
  715. box-sizing: border-box;
  716. font-weight: bold;
  717. background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .5));
  718. }
  719. .index_2_left_ul_box {
  720. width: 100%;
  721. float: none;
  722. overflow: hidden;
  723. }
  724. .index_2_left_ul_li {
  725. width: 100% !important;
  726. display: block;
  727. height: 40px !important;
  728. border-bottom: 1px solid #E6E6E6;
  729. margin: 0px !important;
  730. }
  731. .index_2_left_ul_li .index_2_left_ul_li_a_text {
  732. width: 100% !important;
  733. display: block;
  734. font-weight: normal !important;
  735. line-height: 40px;
  736. height: 40px;
  737. position: relative;
  738. text-indent: 18px;
  739. word-break: keep-all;
  740. white-space: nowrap;
  741. overflow: hidden;
  742. text-overflow: ellipsis;
  743. font-size: 16px;
  744. }
  745. .index_2_left_ul_li .index_2_left_ul_li_a_text::after {
  746. content: '';
  747. display: block;
  748. position: absolute;
  749. left: 0px;
  750. top: 18px;
  751. background: #E6E6E6;
  752. width: 6px;
  753. height: 6px;
  754. }
  755. .index_2_right {
  756. width: 100%;
  757. float: none;
  758. overflow: hidden;
  759. }
  760. .index_2_right_head {
  761. height: 50px;
  762. line-height: 50px;
  763. background: #fff;
  764. border-top: 1px solid #DD7D18;
  765. padding: 0;
  766. width: 100%;
  767. }
  768. .index_2_right_head .index_2_right_head_a {
  769. float: left;
  770. height: 50px;
  771. line-height: 50px;
  772. margin: 0;
  773. color: #dd7d18;
  774. font-size: 18px;
  775. border-top: 3px solid #DD7D18;
  776. font-weight: bold;
  777. box-sizing: border-box;
  778. }
  779. .phone_channel_img_ul {
  780. width: 100%;
  781. float: none;
  782. overflow: hidden;
  783. div {
  784. width: 100%;
  785. float: none;
  786. height: 55vw;
  787. border-radius: 10px;
  788. position: relative;
  789. overflow: hidden;
  790. }
  791. a {
  792. display: block;
  793. width: 100%;
  794. height: 100%;
  795. }
  796. img {
  797. display: block;
  798. width: 100%;
  799. height: 100%;
  800. }
  801. span {
  802. position: absolute;
  803. width: 100%;
  804. height: 66px;
  805. line-height: 90px;
  806. color: #fff;
  807. font-size: 16px;
  808. left: 0px;
  809. bottom: 0px;
  810. padding: 0px 5%;
  811. box-sizing: border-box;
  812. font-weight: bold;
  813. background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .5));
  814. }
  815. }
  816. .phone_channel_ul {
  817. a {
  818. border-bottom: 1px solid #E6E6E6;
  819. width: 100% !important;
  820. display: block;
  821. color: #333;
  822. line-height: 40px;
  823. height: 40px;
  824. position: relative;
  825. text-indent: 18px;
  826. word-break: keep-all;
  827. white-space: nowrap;
  828. overflow: hidden;
  829. text-overflow: ellipsis;
  830. font-size: 16px;
  831. }
  832. a::after {
  833. content: '';
  834. display: block;
  835. position: absolute;
  836. left: 0px;
  837. top: 18px;
  838. background: #E6E6E6;
  839. width: 6px;
  840. height: 6px;
  841. }
  842. }
  843. .index_2_left_ul_li .index_2_left_ul_li_a_name {
  844. display: none;
  845. }
  846. .index_2_left_ul_li:nth-of-type(n+6) {
  847. display: none;
  848. }
  849. .index_3 {
  850. width: 92%;
  851. float: none;
  852. overflow: hidden;
  853. margin: 0px auto;
  854. height: auto;
  855. }
  856. .phone_channel_img_ul_2 {
  857. min-height:55vw;
  858. width: 100%;
  859. float: none;
  860. overflow: hidden;
  861. div {
  862. width: 100%;
  863. float: none;
  864. height: 55vw;
  865. border-radius: 10px;
  866. position: relative;
  867. overflow: hidden;
  868. }
  869. a {
  870. display: block;
  871. width: 100%;
  872. height: 100%;
  873. }
  874. img {
  875. display: block;
  876. width: 100%;
  877. height: 100%;
  878. }
  879. span {
  880. position: absolute;
  881. width: 100%;
  882. height: 66px;
  883. line-height: 90px;
  884. color: #fff;
  885. font-size: 16px;
  886. left: 0px;
  887. bottom: 0px;
  888. padding: 0px 5%;
  889. box-sizing: border-box;
  890. font-weight: bold;
  891. background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .5));
  892. }
  893. }
  894. .phone_channel_img_ul_3 {
  895. min-height:55vw;
  896. width: 100%;
  897. float: none;
  898. overflow: hidden;
  899. div {
  900. width: 100%;
  901. float: none;
  902. height: 55vw;
  903. border-radius: 10px;
  904. position: relative;
  905. overflow: hidden;
  906. }
  907. a {
  908. display: block;
  909. width: 100%;
  910. height: 100%;
  911. }
  912. img {
  913. display: block;
  914. width: 100%;
  915. height: 100%;
  916. }
  917. span {
  918. position: absolute;
  919. width: 100%;
  920. height: 66px;
  921. line-height: 90px;
  922. color: #fff;
  923. font-size: 16px;
  924. left: 0px;
  925. bottom: 0px;
  926. padding: 0px 5%;
  927. box-sizing: border-box;
  928. font-weight: bold;
  929. background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .5));
  930. }
  931. }
  932. .phone_channel_img_ul_4 {
  933. width: 100%;
  934. float: none;
  935. overflow: hidden;
  936. min-height:55vw;
  937. div {
  938. width: 100%;
  939. float: none;
  940. height: 55vw;
  941. border-radius: 10px;
  942. position: relative;
  943. overflow: hidden;
  944. margin-bottom:15px;
  945. }
  946. a {
  947. display: block;
  948. width: 100%;
  949. height: 100%;
  950. }
  951. img {
  952. display: block;
  953. width: 100%;
  954. height: 100%;
  955. }
  956. span {
  957. position: absolute;
  958. width: 100%;
  959. height: 66px;
  960. line-height: 90px;
  961. color: #fff;
  962. font-size: 16px;
  963. left: 0px;
  964. bottom: 0px;
  965. padding: 0px 5%;
  966. box-sizing: border-box;
  967. font-weight: bold;
  968. background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .5));
  969. }
  970. }
  971. .phone_channel_ul_3 {
  972. height: 207px;
  973. overflow: hidden;
  974. margin: 13px auto 15px;
  975. a {
  976. border-bottom: 1px solid #E6E6E6;
  977. width: 100% !important;
  978. display: block;
  979. color: #333;
  980. line-height: 40px;
  981. height: 40px;
  982. position: relative;
  983. text-indent: 18px;
  984. word-break: keep-all;
  985. white-space: nowrap;
  986. overflow: hidden;
  987. text-overflow: ellipsis;
  988. font-size: 16px;
  989. }
  990. a::after {
  991. content: '';
  992. display: block;
  993. position: absolute;
  994. left: 0px;
  995. top: 18px;
  996. background: #E6E6E6;
  997. width: 6px;
  998. height: 6px;
  999. }
  1000. }
  1001. .index_1_ul {
  1002. height: 205px;
  1003. overflow: hidden;
  1004. }
  1005. .index_2_left_ul_group_6 {
  1006. height: 205px;
  1007. overflow: hidden;
  1008. }
  1009. .index_2_left_ul_group_5 {
  1010. height: 205px;
  1011. overflow: hidden;
  1012. }
  1013. .phone_channel_ul {
  1014. height: 205px;
  1015. overflow: hidden;
  1016. margin: 15px auto 15px;
  1017. }
  1018. .index_3_num_ul {
  1019. height: 205px;
  1020. overflow: hidden;
  1021. }
  1022. .phone_head_1 {
  1023. margin: 30px auto 0px;
  1024. }
  1025. .phone_head_2 {
  1026. margin: 30px auto 0px;
  1027. }
  1028. .phone_head_3 {
  1029. margin: 15px auto 0px;
  1030. }
  1031. .phone_head_4 {
  1032. margin: 15px auto 0px;
  1033. }
  1034. .phone_head_5 {
  1035. margin: 15px auto 0px;
  1036. }
  1037. .phone_img_li_1 {
  1038. margin-bottom: 15px;
  1039. }
  1040. .phone_img_ul_1 {
  1041. margin: 15px auto 13px;
  1042. }
  1043. .phone_img_ul_2 {
  1044. margin-bottom: 11px;
  1045. }
  1046. .index_2_img_ul {
  1047. display: none;
  1048. }
  1049. .index_1 .index_1_left {
  1050. display: none;
  1051. }
  1052. .phone_none {
  1053. display: none;
  1054. }
  1055. }
  1056. </style>